Gradle ব্যবহার করে Jackson অন্তর্ভুক্ত করা

Jackson Maven Dependency এবং সেটআপ - জ্যাকসন অ্যানোটেশন (Jackson Annotations) - Java Technologies

385

Jackson একটি শক্তিশালী JSON প্রসেসিং লাইব্রেরি যা Java-তে serialization, deserialization এবং JSON ডেটা হ্যান্ডল করার জন্য ব্যাপকভাবে ব্যবহৃত হয়। Gradle ব্যবহার করে আপনার প্রকল্পে Jackson অন্তর্ভুক্ত করা খুব সহজ।


1. Gradle-এ Jackson অন্তর্ভুক্ত করার ধাপসমূহ

Step 1: Gradle প্রকল্প সেটআপ করুন

Gradle-এ আপনার build.gradle ফাইল খুলুন।

Step 2: Dependencies যোগ করুন

মৌলিক Jackson ডিপেন্ডেন্সি:
dependencies {
    // Jackson Databind: Core Library for JSON Serialization and Deserialization
    implementation 'com.fasterxml.jackson.core:jackson-databind:2.15.2'

    // Optional: Core Jackson modules
    implementation 'com.fasterxml.jackson.core:jackson-core:2.15.2'
    implementation 'com.fasterxml.jackson.core:jackson-annotations:2.15.2'
}
Additional Modules (Optional):
  1. Java 8 Date/Time Support:

    implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.15.2'
    
  2. XML Support:

    implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.15.2'
    
  3. YAML Support:

    implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.2'
    
  4. Validation (JSON Schema Support):

    implementation 'com.fasterxml.jackson.module:jackson-module-jsonSchema:2.15.2'
    
  5. Kotlin Support:

    implementation 'com.fasterxml.jackson.module:jackson-module-kotlin:2.15.2'
    

2. Gradle প্রকল্প Build এবং Sync করা

Step 1: Gradle Build চালান

Gradle Build রান করতে gradle build কমান্ড ব্যবহার করুন অথবা IntelliJ IDEA/Eclipse-এর Gradle টুল ব্যবহার করুন।

Step 2: Dependencies Sync করুন

Gradle ফাইল সেভ করার পর প্রকল্পে ডিপেন্ডেন্সিগুলো সিঙ্ক করুন। IntelliJ IDEA-তে Refresh Gradle Project ক্লিক করুন।


3. Jackson অন্তর্ভুক্ত করার পর টেস্ট কোড

Serialization Example:

import com.fasterxml.jackson.databind.ObjectMapper;

public class Main {
    public static void main(String[] args) throws Exception {
        User user = new User(101, "John Doe", "john.doe@example.com");

        ObjectMapper objectMapper = new ObjectMapper();
        String json = objectMapper.writeValueAsString(user);

        System.out.println("Serialized JSON: " + json);
    }
}

class User {
    public int id;
    public String name;
    public String email;

    public User(int id, String name, String email) {
        this.id = id;
        this.name = name;
        this.email = email;
    }
}

Deserialization Example:

import com.fasterxml.jackson.databind.ObjectMapper;

public class Main {
    public static void main(String[] args) throws Exception {
        String json = """
        {
            "id": 101,
            "name": "John Doe",
            "email": "john.doe@example.com"
        }
        """;

        ObjectMapper objectMapper = new ObjectMapper();
        User user = objectMapper.readValue(json, User.class);

        System.out.println("Deserialized User: " + user.name);
    }
}

4. Common Jackson Annotations

  1. @JsonProperty:

    • JSON ফিল্ডকে Java ফিল্ডের সঙ্গে ম্যাপ করে।
    @JsonProperty("user_id")
    public int id;
    
  2. @JsonIgnore:

    • নির্দিষ্ট ফিল্ড Serialization এবং Deserialization থেকে বাদ দেয়।
    @JsonIgnore
    public String password;
    
  3. @JsonInclude:

    • শুধুমাত্র non-null বা non-default ভ্যালু অন্তর্ভুক্ত করতে ব্যবহৃত।
    @JsonInclude(JsonInclude.Include.NON_NULL)
    
  4. @JsonFormat:

    • তারিখ এবং সময় ফরম্যাট কাস্টমাইজ করতে।
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
    public LocalDate birthDate;
    
  5. @JsonCreator এবং @JsonValue:

    • Enum Mapping বা Custom Deserialization-এর জন্য।
    @JsonCreator
    public static Status fromValue(String value) { ... }
    
    @JsonValue
    public String toValue() { ... }
    

5. Gradle Project Structure

project/
├── build.gradle
├── settings.gradle
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   ├── Main.java
│   │   │   ├── User.java
│   ├── test/
│       ├── java/
│           ├── SerializationTest.java
│           ├── DeserializationTest.java

6. Testing with JUnit

JUnit Test Example for Serialization:

import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

public class SerializationTest {

    @Test
    public void testSerialization() throws Exception {
        User user = new User(101, "John Doe", "john.doe@example.com");

        ObjectMapper objectMapper = new ObjectMapper();
        String json = objectMapper.writeValueAsString(user);

        assertTrue(json.contains("\"id\":101"));
        assertTrue(json.contains("\"name\":\"John Doe\""));
        assertTrue(json.contains("\"email\":\"john.doe@example.com\""));
    }
}

JUnit Test Example for Deserialization:

import com.fasterxml.jackson.databind.ObjectMapper;
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

public class DeserializationTest {

    @Test
    public void testDeserialization() throws Exception {
        String json = """
        {
            "id": 101,
            "name": "John Doe",
            "email": "john.doe@example.com"
        }
        """;

        ObjectMapper objectMapper = new ObjectMapper();
        User user = objectMapper.readValue(json, User.class);

        assertEquals(101, user.id);
        assertEquals("John Doe", user.name);
        assertEquals("john.doe@example.com", user.email);
    }
}

  • Gradle ব্যবহার করে Jackson লাইব্রেরি সহজেই অন্তর্ভুক্ত এবং পরিচালনা করা যায়।
  • Serialization এবং Deserialization টেস্ট করার মাধ্যমে কোডের গুণগত মান নিশ্চিত করা যায়।
  • Optional মডিউল ব্যবহার করে XML, YAML, এবং JSON Schema সাপোর্ট যোগ করা যায়।

Gradle এবং Jackson-এর সমন্বয় API ডেভেলপমেন্ট আরও সহজ এবং কার্যকর করে তোলে।

Content added By
Promotion

Are you sure to start over?

Loading...